Agent 训练环境
前置:知道「训练模型」和「调用模型」是两回事。不需要懂强化学习,下面第一段就解释。
本专题回答:要训练一个会用工具的模型,得给它准备什么样的机器,为什么线上那套沙箱不能直接拿来用。
想训练一个会自己改代码的模型,办法大致是这样:给它一个坏掉的代码仓库,让它随便试着修;修完跑一遍测试,通过就给它加分,不通过就减分;这样来回几十万次,它慢慢就学会了。这套「让模型自己去试、按结果打分」的训练方式叫强化学习,业内把用在 Agent 上的这一支叫 agentic RL。
问题全出在「给它一个坏掉的代码仓库」这一句上。这台机器有三个要求,每一个单独看都不难,凑一起就很要命:
- 模型每试一次,要一台装好环境的机器
- 试砸了,这台机器得恢复成一开始的样子,好让下一次从同一个起点重来
- 为了让几千张 GPU 不空转,这样的机器要同时开出几万台,而且一台只活几十秒
所以真正卡住训练速度的往往不是显卡,而是没人能按这个节奏把机器开出来、再抹干净。这个专题讲的就是负责这件事的那一层。
先约定几个词,本专题全程使用:
| 词 | 意思 |
|---|---|
| RL(强化学习) | 让模型通过「试—打分—调整」学习的训练方式。没有标准答案,只有一个给行为打分的函数 |
| rollout | 一次完整的「让模型去试一遍」。模型在环境里连续动作若干步直到结束,产出一条轨迹 |
| 环境 | 接收动作、返回观察和奖励的那个东西。对 Agent 来说通常就是一台装好工具的 Linux 机器 |
| reset | 把环境恢复到初始状态,好让下一次 rollout 从同一个起点开始。这是训练环境区别于运行时沙箱最核心的一条 |
| 可验证奖励(RLVR) | 由程序自动判定的奖励,比如「测试跑没跑过」。它是编码任务成为 agentic RL 主战场的原因 |
| 快照与 fork | 把初始状态固化下来,每条 rollout 从它分叉出一个独立副本。这是 reset 的高效实现方式 |
| harness(脚手架) | 真正驱动模型干活的那个程序,比如 Claude Code、Codex。训练时用的和上线时用的是不是同一份,直接决定训练效果能不能复现 |
一、这一层要解决的问题
二、五篇正文
| # | 标题 | 回答的问题 |
|---|---|---|
| 01 | 训练环境为什么不是运行时沙箱 | 生产上已经有沙箱了,为什么还要另做一套?差在哪、差多少 |
| 02 | AgentENV 拆解 | 一个支撑 150 万镜像、冷启动 50 毫秒的实现内部长什么样 |
| 03 | 环境接口标准 | 训练框架和环境用什么接口对话?三套方案划在了哪里 |
| 04 | 训练框架怎么接环境 | 谁负责把几万个环境拉起来?六个训练框架的选择 |
| 05 | 任务环境与选型 | 用什么任务训?评测基准能不能直接拿来用 |
三、拆解对象
3.1 环境平台
| 项目 | ★ | 协议 | 语言 | 选取理由 |
|---|---|---|---|---|
kvcache-ai/AgentENV | 3,240 | MIT | Rust | 本专题主拆对象。给 Kimi K3 的 agentic RL 训练供环境,是少数有前沿模型生产验证的开源实现 |
e2b-dev/E2B | 13,478 | Apache-2.0 | Python | 这个领域事实上的 API 参考,AgentENV 选择兼容它。运行时形态的拆解见 执行沙箱 03 篇 |
3.2 环境接口标准
| 项目 | ★ | 协议 | 建仓 | 立场 |
|---|---|---|---|---|
huggingface/OpenEnv | 2,509 | BSD-3-Clause | 2025-10-01 | 把 Gymnasium 的 reset / step / state 搬到 HTTP 上,环境用 Docker 打包 |
PrimeIntellect-ai/verifiers | 4,525 | MIT | 2025-01-22 | 接口单位是一整条轨迹:taskset / harness / trace,工具以 MCP 装进 harness |
3.3 训练框架
| 项目 | ★ | 协议 | 建仓 | 环境接入方式 |
|---|---|---|---|---|
verl-project/verl | 23,040 | Apache-2.0 | 2024-10-31 | 多轮工具调用与 agent loop 内建 |
microsoft/agent-lightning | 17,525 | MIT | 2025-06-18 | 在模型 API 层代理,agent 代码零改动;用 K8s Job 拉起 |
OpenPipe/ART | 10,603 | Apache-2.0 | 2025-03-10 | 面向给已有 agent 做在岗训练 |
alibaba/ROLL | 3,365 | Apache-2.0 | 2025-05-28 | Ray 多角色分布式,异构任务调度 |
NovaSky-AI/SkyRL | 2,176 | Apache-2.0 | 2025-04-22 | 分三层:训练 / 环境库 / 长程 agent 层 |
PrimeIntellect-ai/prime-rl | 1,952 | Apache-2.0 | 2025-02-18 | 与 verifiers 绑定,环境即 taskset |
3.4 任务环境与基准
代码与终端类以 SWE-bench(★5,669)与 harbor(★4,426)为主,操作系统与浏览器类看 OSWorld(★3,099)与 BrowserGym(★1,325),工具使用类看 AgentBench(★3,675)与 tau-bench(★1,393)。完整对照与停更情况见 05 篇。
四、与其他专题的关系
- Agent 执行沙箱:边界在这里 —— 那个专题讲生产上怎么隔离不可信代码,本专题讲训练时怎么大规模供给可重置的环境。同样是「一台隔离的 Linux 机器」,两种负载对它的要求几乎相反,01 篇逐条对比
- Agent 网关 · MCP 网关:verifiers 把训练用的工具也做成 MCP Server,训练与生产因此共用同一套工具协议
- Agent 可观测性:trace 在这里有第二重身份 —— 生产上它是排查依据,训练时它就是训练数据本身
- Agent Infra 板块总览:本专题在整体架构中的位置
← 回到 Agent Infra 板块总览